package com.fjec.info.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fjec.common.protocol.JsonResult;
import com.fjec.common.view.InfoDetailVO;
import com.fjec.common.view.InfoInformationVO;
import com.fjec.common.view.RpcReturnPage;
import com.fjec.info.entity.InfoInformation;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 025.资讯表 服务类
 * </p>
 *
 * @author admin
 * @since 2020-12-12
 */
public interface IInfoInformationService extends IService<InfoInformation> {

    /**
     * 小程序分页查询资讯
     *
     * @param page
     * @param category
     * @return
     */
    JsonResult getInformationPage(Page page, Integer category) throws Exception;


    /**
     * 小程序根据Id获取资讯
     *
     * @param id
     * @return
     */
    JsonResult getInfoDetail(Long id) throws Exception;

    /**
     * 分页查询资讯
     *
     * @param page
     * @param title
     * @param startTime
     * @param endTime
     * @param getTop
     * @param category
     * @return
     */
    RpcReturnPage<InfoInformationVO> rpcGetInformationPage(Page page,
                                                           String title,
                                                           String startTime,
                                                           String endTime,
                                                           Integer getTop,
                                                           Integer category
    ) throws Exception;

    /**
     * 保存或修改资讯
     *
     * @param category 暂时不用传
     * @param id       资讯Id
     * @param title    标题
     * @param summary  简介
     * @param coverPic 封面url
     * @param content  富文本内容
     * @param display  是否显示 0=不显示 1=显示
     * @param space    两边留白
     * @return
     */
    boolean rpcSaveOrUpdateInformation(Integer category,
                                       Long id,
                                       String title,
                                       String summary,
                                       String coverPic,
                                       String content,
                                       Integer display,
                                       Integer getTop,
                                       Integer space
    );

    /**
     * 删除资讯
     *
     * @param id
     * @return
     */
    boolean rpcLogicDelInformation(Long id);

    /**
     * 根据Id获取资讯
     *
     * @param id
     * @return
     */
    InfoDetailVO rpcGetInfoDetail(Long id) throws Exception;

    /**
     * 上传图片（不保存附件表）
     *
     * @param file
     * @return
     */
    JsonResult uploadRichTextPic(MultipartFile file) throws Exception;

}
